/**
 * 生成杨辉三角的前numRows行
 * @param {number} numRows - 要生成的行数
 * @return {number[][]} - 杨辉三角的二维数组表示
 */
function generate(numRows) {
  // 初始化结果数组
  const result = [];

  // 生成每一行
  for (let i = 0; i < numRows; i++) {
    // 初始化当前行，长度为i+1
    const row = new Array(i + 1).fill(0);
    // 每行的第一个元素和最后一个元素都是1
    row[0] = 1;
    row[i] = 1;

    // 计算中间元素，每个元素等于它上方两数之和
    for (let j = 1; j < i; j++) {
      row[j] = result[i - 1][j - 1] + result[i - 1][j];
    }

    // 将当前行添加到结果数组
    result.push(row);
  }

  return result;
}

// 测试示例
console.log(generate(5));
// 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

console.log(generate(1));
// 输出: [[1]]
